function Cmap_new = my_remapColormap(Value)
	% Cmap = my_remapColormap(Value)
	% -------- custom function ------
	% description:
	%	修改colormap成在0值附近颜色中性的colormap
	% input:
	%	Value: double, 画图时输入的值
	%		或者是clim()的输出（即figure的颜色上下限构成的向量）
	% output:
	%	Cmap: 修改后的colormap
	% Author: Sid Chen
	% Date: 2022/2/13
	% Log:
	%	2022/2/13	ver1.0 create
	%	2022/2/14	ver1.1 change middle index of colormap from 128 to ColorMid
	Cmap_raw = colormap;
	ColorLevel = size(Cmap_raw,1);
	ColorMid = floor(ColorLevel / 2);

	Cmap_posi = Cmap_raw((ColorMid+1):end,:);
	Cmap_nega = Cmap_raw(1:ColorMid,:);

	Value_min = min(Value,[],'all');
	Value_max = max(Value,[],'all');

	if Value_min * Value_max > 0
		error('Same Sign in Value!');
	end

	Number_level_posi = round(...
		ColorLevel * abs(Value_max) ...
		/ (abs(Value_max) + abs(Value_min))...
		);
	Number_level_nega = ColorLevel - Number_level_posi;

	Value_level_posi = linspace(1,ColorMid,Number_level_posi);
	Value_level_nega = linspace(1,ColorMid,Number_level_nega);

	Cmap_new_posi = interp1(1:ColorMid,Cmap_posi,Value_level_posi);
	Cmap_new_nega = interp1(1:ColorMid,Cmap_nega,Value_level_nega);
	Cmap_new = [Cmap_new_nega;Cmap_new_posi];
	colormap(Cmap_new);
end

